home *** CD-ROM | disk | FTP | other *** search
- STDMETHODIMP C$$COM_Class_Name$$::get_ClassID(BSTR *bstrClassID)
- {
- AFX_MANAGE_STATE(AfxGetStaticModuleState())
-
- HRESULT hRes = E_FAIL;
- LPOLESTR olestr = NULL;
-
- try
- {
- hRes = ::StringFromCLSID(CLSID_$$COM_Class_Name$$, &olestr);
- CHECK_HRESULT(hRes);
-
- *bstrClassID = ::SysAllocString(olestr);
- }
- catch (...)
- {
- TRACE("C$$COM_Class_Name$$::get_ClassID");
- }
- if (olestr) CoTaskMemFree (olestr);
-
- return hRes;
- }
-
-
- STDMETHODIMP C$$COM_Class_Name$$::get_Description(BSTR *bstrDescription)
- {
- AFX_MANAGE_STATE(AfxGetStaticModuleState())
-
- CString strDescription;
-
- strDescription.LoadString(IDS_DESCRIPTION);
- *bstrDescription = strDescription.AllocSysString();
- return S_OK;
- }
-
- void MySafeArrayAccessData(SAFEARRAY *destArray, void** srcArray, bool* boolResult)
- {
- *boolResult = false;
- if (SUCCEEDED(SafeArrayAccessData(destArray, srcArray)))
- *boolResult = true;
- else
- throw;
- }
-
- BSTR MakeBSTR(long lIdOfResourceString)
- {
- CString cStr;
- cStr.LoadString(lIdOfResourceString);
- return cStr.AllocSysString();
- }
-
- STDMETHODIMP C$$COM_Class_Name$$::GetToolInfo(VARIANT *CommandNames, VARIANT *MenuCaptions, VARIANT *StatusPrompts, VARIANT *ToolTips, VARIANT *Enabled, VARIANT *WantsUpdates, long *lToolsCount)
- {
- AFX_MANAGE_STATE(AfxGetStaticModuleState())
-
- ASSERT(CommandNames->vt == (VT_ARRAY | VT_BSTR));
- ASSERT(MenuCaptions->vt == (VT_ARRAY | VT_BSTR));
- ASSERT(StatusPrompts->vt == (VT_ARRAY | VT_BSTR));
- ASSERT(ToolTips->vt == (VT_ARRAY | VT_BSTR));
- ASSERT(Enabled->vt == (VT_ARRAY | VT_BOOL));
- ASSERT(WantsUpdates->vt == (VT_ARRAY | VT_BOOL));
-
- *lToolsCount = $$ToolsCount$$;
-
- HRESULT hRes = S_OK;
- BSTR *bstrNames = NULL;
- BSTR *bstrCaptions = NULL;
- BSTR *bstrPrompts = NULL;
- BSTR *bstrTips = NULL;
- VARIANT_BOOL *boolEnabled = NULL;
- VARIANT_BOOL *boolWants = NULL;
-
- bool boolNamesAccess;
- bool boolCaptionsAccess;
- bool boolProptmsAccess;
- bool boolToolTipsAccess;
- bool boolEnabledAccess;
- bool boolWantsUpdatesAccess;
-
- SAFEARRAYBOUND bound[2] =
- {
- { *lToolsCount, 0 },
- { 2, 0 }
- };
-
- if (FAILED(::SafeArrayRedim(CommandNames->parray, bound))) return E_FAIL;
- if (FAILED(::SafeArrayRedim(StatusPrompts->parray, bound))) return E_FAIL;
- if (FAILED(::SafeArrayRedim(ToolTips->parray, bound))) return E_FAIL;
- if (FAILED(::SafeArrayRedim(Enabled->parray, bound))) return E_FAIL;
- if (FAILED(::SafeArrayRedim(WantsUpdates->parray, bound))) return E_FAIL;
-
- if (FAILED(::SafeArrayDestroy(MenuCaptions->parray))) return E_FAIL;
- MenuCaptions->parray = ::SafeArrayCreate(VT_BSTR, 2, bound);
-
- try
- {
- MySafeArrayAccessData(CommandNames->parray, (void**)&bstrNames, &boolNamesAccess);
- MySafeArrayAccessData(MenuCaptions->parray, (void**)&bstrCaptions, &boolCaptionsAccess);
- MySafeArrayAccessData(StatusPrompts->parray,(void**)&bstrPrompts, &boolProptmsAccess);
- MySafeArrayAccessData(ToolTips->parray, (void**)&bstrTips, &boolToolTipsAccess);
- MySafeArrayAccessData(Enabled->parray, (void**)&boolEnabled, &boolEnabledAccess);
- MySafeArrayAccessData(WantsUpdates->parray, (void**)&boolWants, &boolWantsUpdatesAccess);
-
- long lTmpIndex = 0;
-
- $$GeneratedToolsInfo$$
- ASSERT(lTmpIndex == (*lToolsCount));
- }
- catch (...)
- {
- TRACE("C$$COM_Class_Name$$::GetPropertyInfo");
- hRes = E_FAIL;
- };
-
- if (boolNamesAccess) ::SafeArrayUnaccessData(CommandNames->parray);
- if (boolCaptionsAccess) ::SafeArrayUnaccessData(MenuCaptions->parray);
- if (boolProptmsAccess) ::SafeArrayUnaccessData(StatusPrompts->parray);
- if (boolToolTipsAccess) ::SafeArrayUnaccessData(ToolTips->parray);
- if (boolEnabledAccess) ::SafeArrayUnaccessData(Enabled->parray);
- if (boolWantsUpdatesAccess) ::SafeArrayUnaccessData(WantsUpdates->parray);
-
- return hRes;
- }
-
- STDMETHODIMP C$$COM_Class_Name$$::CopyBitmap(VARIANT_BOOL LargeButtons, VARIANT_BOOL Monochrome, VARIANT_BOOL *ret)
- {
- AFX_MANAGE_STATE(AfxGetStaticModuleState())
-
- HRESULT hRes = S_OK;
-
- try
- {
-
- }
- catch (...)
- {
- TRACE("C$$COM_Class_Name$$::CopyBitmap");
- }
-
- return hRes;
- }
-
- STDMETHODIMP C$$COM_Class_Name$$::GetPicture(VARIANT_BOOL LargeButtons, VARIANT_BOOL Monochrome, IDispatch * *ret)
- {
- AFX_MANAGE_STATE(AfxGetStaticModuleState())
-
- HRESULT hRes = S_OK;
- LPTSTR lptstrIDB = NULL;
- HBITMAP pBmp = NULL;
- PICTDESC pict;
-
- try
- {
- lptstrIDB = MAKEINTRESOURCE(IDB_TOOLICON);
-
- pBmp = ::LoadBitmap(AfxGetResourceHandle(), lptstrIDB);
-
- pict.cbSizeofstruct = sizeof(pict);
- pict.picType = PICTYPE_BITMAP;
- pict.bmp.hbitmap = pBmp;
- pict.bmp.hpal = NULL;
-
- hRes = OleCreatePictureIndirect(&pict, IID_IDispatch, TRUE, (void**)ret);
- CHECK_HRESULT(hRes)
- }
- catch (...)
- {
- TRACE("C$$COM_Class_Name$$::GetPicture");
- }
-
- return hRes;
- }
-
- STDMETHODIMP C$$COM_Class_Name$$::Run(IDispatch *ThisTool, VARIANT_BOOL *ret)
- {
- AFX_MANAGE_STATE(AfxGetStaticModuleState())
-
- HRESULT hRes = S_OK;
-
- try
- {
- *ret = true;
- }
- catch (...)
- {
- TRACE("C$$COM_Class_Name$$::Run");
- }
-
- return hRes;
- }
-
- STDMETHODIMP C$$COM_Class_Name$$::UpdateToolStatus(IDispatch *ThisTool, VARIANT_BOOL *Enabled, VARIANT_BOOL *Checked, VARIANT_BOOL *ret)
- {
- AFX_MANAGE_STATE(AfxGetStaticModuleState())
-
- HRESULT hRes = S_OK;
-
- try
- {
- *ret = true;
- }
- catch (...)
- {
- TRACE("C$$COM_Class_Name$$::UpdateToolStatus");
- }
-
- return hRes;
- }
-
- STDMETHODIMP C$$COM_Class_Name$$::Initialize(IDispatch *ThisTool, VARIANT_BOOL *ret)
- {
- AFX_MANAGE_STATE(AfxGetStaticModuleState())
-
- HRESULT hRes = S_OK;
-
- try
- {
- *ret = true;
- }
- catch (...)
- {
- TRACE("C$$COM_Class_Name$$::Initialize");
- }
-
- return hRes;
- }
-
- STDMETHODIMP C$$COM_Class_Name$$::Terminate(IDispatch *ThisTool)
- {
- AFX_MANAGE_STATE(AfxGetStaticModuleState())
-
- HRESULT hRes = S_OK;
-
- try
- {
-
- }
- catch (...)
- {
- TRACE("C$$COM_Class_Name$$::Terminate");
- }
-
- return hRes;
- }
-
-
-